<?php
/* 
 * メイル受信オブジェクト
 * 
 * author	；t.odaka
 * date		;2005/10/13
 * 
 * modified;	2009/3/14	t.odaka
 * 
*/

require_once("NET/POP3.php");
require_once('../Myznala/Config.php');

class ReceiveMailBean {
	/* プロパティー */
	var $_Pop3host, $_Pop3port, $_Pop3user, $_Pop3pass; 
	
	/* デフォルトのコンストラクタ */
	function __construct() {
		
		require("../Myznala/debugLog.php");
		// debugログの出力
//		$myDebugLog->debug("constructor: start");
		$this->setPop3Host();
		$this->setPop3Port();
		$this->setPop3User();
		$this->setPop3Pass();
		$this->setPop3DeleteAfter();
		// debugログの出力
//		$myDebugLog->debug("constructor: end");
	}

	/* setter */
	function setPop3Host(){
		$this->_Pop3host=POP3HOST;
	}
	function setPop3Port(){
		$this->_Pop3port=POP3PORT;
	}
	function setPop3User(){
		$this->_Pop3user=POP3USER;
	}
	function setPop3Pass(){
		$this->_Pop3pass=POP3PASS;
	}
	function setPop3DeleteAfter(){
		$this->_Pop3DeleteAfter=POP3DELETEAFTER;
	}
	
	function mailreceive(){
		require("../Myznala/debugLog.php");
		
		// debguログの出力
//		$myDebugLog->debug("mailreceive: start");

		/*
		 * 変数定義
		 */
		$host=$this->_Pop3host;
    	$port=$this->_Pop3port;
    	$user=$this->_Pop3user;
		$pass=$this->_Pop3pass;
		
//		$myDebugLog->debug("host: ".$host);
//		$myDebugLog->debug("port: ".$port);
//		$myDebugLog->debug("user: ".$user);
//		$myDebugLog->debug("pass: ".$pass);
		
    	/*
    	 * ログイン
    	 */
		$pop3 = new Net_POP3();
		$ret = $pop3->connect($host, $port);

		// 接続OKのとき
		if ($ret) {
//			$myDebugLog->debug("connected to ".$host);
			$ret = $pop3->login($user, $pass, true);
			// ログインOKのとき
		    if ($ret) {
//				$myDebugLog->debug("logged in to ".$host);
			
		        $num = $pop3->numMsg();
//				$myDebugLog->debug("num of messages ".$num);

				$ret = $pop3->getListing();
        		
		        $i = 1;
        		if ($ret !== false) {
//					$myDebugLog->debug("new mail in box");
        			foreach ($ret as $key => $value) {
        			

					// ヘッダ情報
					$ret2 = $pop3->getParsedHeaders( $i );
					foreach( $ret2 as $key2 => $value2 ) {
						$msg[$key2] = mb_convert_encoding(mb_decode_mimeheader($value2),'UTF-8','auto');
//						$myDebugLog->debug("key;value".$key2.' : '.$value2);
					}

					// 本文の表示
					$ret2 = $pop3->getBody( $i );
					$msg['Body']= mb_convert_encoding($ret2, 
										"UTF-8", "JIS");
					
					$result[$i]=$msg;
					
//					$myDebugLog->debug("from[$i]; ".$msg['From']);
//					$myDebugLog->debug("subject[$i]; ".$msg['Subject']);
//					$myDebugLog->debug("message[$i]; ".$msg['Body']);
					
					// メッセージの削除
               		if($this->_Pop3DeleteAfter){
						$pop3->deleteMsg($i);
               		}
               		
               		$i++;
        	    	}
        		}
   	 		} else {
        		return false;
    		}
		} else {
        	return false;
	}
	
	$pop3->disconnect();
	
    // debugログの出力
//	$myDebugLog->debug("mailreceive end ; return ".print_r($result, true));
	
	return $result;
	}
}
?>